/*************************************************************************
    > File Name: 5lseek.c
    > Author: Ykk
    > Mail: 3393579535@qq.com 
    > Created Time: 2023年04月01日 星期六 14时55分36秒
 ************************************************************************/

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>

#define SIZE 128

//lseek使用
int main()
{
	int fd = -1;
	int ret = -1;

	char buf[SIZE];
		 
	//1.打开文件
	fd = open("txt",O_RDWR|O_CREAT,0644);
	if(-1==fd)
	{
		perror("open");
		return 1;
	}
	printf("fd = %d\n",fd);

	//2.lseek操作
	write(fd,"ABCDEFGHIJK",11);

	//从文件开头偏移20个字节
	ret = lseek(fd,20,SEEK_SET);
	if(-1==ret)
	{
		perror("lseek");
		return 1;
	}

	write(fd,"LMNOPQRST",9);

	//将文件位置指针指向文件开头
	lseek(fd,0,SEEK_SET);
	memset(buf,0,SIZE);
	ret = read(fd,buf,SIZE);
	if(-1==ret)
	{
		perror("read");
		return 1;
	}
	printf("read ret:%d \nbuf:%s\n",ret,buf);
}
